package org.budo.dubbo.monitor.web.service.impl;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.budo.dubbo.monitor.entity.DubboInvoke;
import org.budo.dubbo.monitor.web.dao.IDubboInvokeDao;
import org.budo.dubbo.monitor.web.service.IDubboInvokeService;
import org.budo.support.dao.IDao;
import org.budo.support.service.AbstractService;
import org.springframework.stereotype.Service;

/**
 * @author limingwei2
 */
@Service
public class DubboInvokeServiceImpl extends AbstractService<DubboInvoke, String> implements IDubboInvokeService {
    @Resource
    IDubboInvokeDao dubboInvokeDao;

    protected IDao<DubboInvoke, String> getDao() {
        return dubboInvokeDao;
    }

    public List<String> getMethodsByService(DubboInvoke dubboInvoke) {
        return dubboInvokeDao.getMethodsByService(dubboInvoke);
    }

    public List<DubboInvoke> countDubboInvoke(DubboInvoke dubboInvoke) {
        return dubboInvokeDao.countDubboInvoke(dubboInvoke);
    }

    public List<DubboInvoke> countDubboInvokeInfo(DubboInvoke dubboInvoke) {
        return dubboInvokeDao.countDubboInvokeInfo(dubboInvoke);
    }

    @SuppressWarnings("rawtypes")
    public Map countDubboInvokeTopTen(DubboInvoke dubboInvoke) {
        return dubboInvokeDao.countDubboInvokeTopTen(dubboInvoke);
    }
}